/*
 * @lc app=leetcode.cn id=1 lang=javascript
 *
 * [1] 两数之和
 */
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
 // let result = [],bstop= false;
  // for (let i = 0; i < nums.length; i++) {
  //   if(bstop){
  //     break;
  //   }
  //   const ele = nums[i];
  //   for (let j =  i + 1; j < nums.length; j++) {
  //     const ele2 = nums[j];
  //     if (ele + ele2 === target) {
  //       result = [i,j];
  //       bstop = true;
  //       break;
  //     }
  //   }
  // }
  // return result

  // 降低空间复杂度
  // for (let i = 0; i < nums.length; i++) {
  //   const ele = nums[i];
  //   let j = nums.indexOf(target-ele,i+1)
  //   if(j !== -1){
  //     return [i,j]
  //   }
  // }

  // 使用map表 降低时间复杂度
  let map = new Map();
  for (let i = 0; i < nums.length; i++) {
    if (map.has(target - nums[i])) {
      return [map.get(target - nums[i]), i];
    }
    map.set(nums[i], i);
  }
};
